home *** CD-ROM | disk | FTP | other *** search
/ Aminet 3 / Aminet 3 - July 1994.iso / Aminet / mus / misc / xmodule26b.lha / XModule / XModule.doc < prev    next >
Text File  |  1994-04-06  |  19KB  |  434 lines

  1.  
  2.  
  3.    This manual documents XModule version 2.5 released on 15 Apr 94.
  4.  
  5.    Copyright (C) 1993-1994 by Bernardo Innocenti, Freely distributable,
  6. all rights reserved.
  7.  
  8. Overview
  9. ********
  10.  
  11.    The Amiga computer has standard file formats for almost everything.
  12. Graphics, text, animation, hypertext and many other data types are
  13. easily imported into any program that supports the given standards.
  14. But this isn't true for music.  Too bad the music interchange file
  15. format defined by Electronic Arts (the old IFF SMUS) was too poor to be
  16. usable in high-quality music sequencers.  Therefore, every music editor
  17. created its own proprietary module format, so that, for instance, you
  18. cannot load into ProTracker music written with Oktalyzer.
  19.  
  20.        XModule (pronounced Cross Module) is a music module
  21. conversion utility that tries to solve this problem.  The project
  22. started in early 1993, as a friend of mine (Fabio), who wrote a lot of
  23. (good) music on Oktalyzer, needed ProTracker to obtain certain effects.
  24. He had an old PD conversion program called `Tracker' that worked only
  25. in particular conditions and was really bogus.  So I decided to contact
  26. the author and he let me have the source for Lit30000  (about $20).
  27.  
  28.    The original program has been completely rewritten from scratch, as
  29. the source was really poorly coded.  At the moment, Oktalyzer,
  30. ProTracker, NoiseTracker and SoundTracker are the only supported
  31. formats, but I'm still developing XModule, so contact me if you want to
  32. see your favorite music editor added to this (short) list (see Author).
  33.  
  34.    Now XModule sports many other features, like module optimization, a
  35. nice user interface and complex module editing.  This is why I like to
  36. call XModule a module processor.  XModule is to the music processing
  37. what ADPro and ImageFX are to image processing (am I a bit immodest?).
  38.  
  39. Distribution
  40. ************
  41.  
  42.    XModule is a Freeware program.  This means that you (probably)
  43. have got it free and you should not ask any money if you decide to
  44. copy it for someone else.  If, instead, someone sold you XModule for a
  45. price higher than the media used to store it on (i.e. $1 for a DD
  46. disk), tell him he should try making money honestly.
  47.  
  48.    I'm not asking you to pay for XModule because I never paid for a
  49. ShareWare program, so I felt that I somehow had to pay my debt: so I
  50. decided to distribute XModule as free software, a little gift to all
  51. the Amiga community.  Feel free to distribute XModule to your friends
  52. and enemies, but, if you do so, you must keep the documentation and
  53. the other distribution files together with the executable.  The source
  54. code is not required, but I'm distributing it to let others take
  55. advantage of my work, so, if possible, try to include the source too.
  56.  
  57.    Fred Fish, SAN and ADS are especially granted permission to include
  58. XModule into their PD libraries.  Other PD libraries are welcome too.
  59.  
  60.    If you intend to include XModule or parts of it in a commercial
  61. package, please at least send me a free copy.  I would be honored to
  62. see one of my programs being part of a commercial package.
  63.  
  64.    You can modify or improve XModule (see Programmers), only be so kind
  65. to return the new source code to me, so I can put the new features in
  66. the next release.  And, please, do not strip my name from the
  67. documentation, the program source, or the executable.
  68.  
  69.    This product is provided as is without warranties of any kind: the
  70. author of this program cannot be held liable for any defects in the
  71. executable nor in the documentation or in any other files contained in
  72. this package.  Any damage directly or indirectly caused by the
  73. use/misuse of XModule is the sole responsibility of the user her/him
  74. self.  In other words: XModule never formatted my hard disk nor killed
  75. my dog, so I suppose it won't cause any damage to your system either,
  76. but, just in case, do not blame me if something nasty happens.
  77.  
  78. Usage
  79. *****
  80.  
  81.    XModule requires KickStart version 2.0 or greater.  The reason is
  82. that I hate programming on 1.3 and I won't do it any more.  If you still
  83. haven't upgraded to 2.0, you'll miss the chance to run XModule and many
  84. other wonderful programs.  So what are you waiting for?
  85.  
  86.    XModule also takes advantage of some 3.0 features, like DataTypes
  87. and some user interface enhancements.
  88.  
  89. Getting Started
  90. ===============
  91.  
  92.    You can invoke XModule either from the Shell or Workbench.  XModule
  93. accepts both command line and ToolTypes arguments.  Workbench and Shell
  94. parameters are the same.  The full AmigaDOS template is:
  95.  
  96.      XModule FROM/M,PUBSCREEN/K,PORTNAME/K,DETACH/S
  97.  
  98. The FROM keyword specifies optional modules to load at startup time.
  99. From Workbench, you multi-select module icons instead of specifying a
  100. ToolType.
  101.  
  102.    Specifying the PUBSCREEN keyword, followed by a public screen name,
  103. allows you to open XModule on an existing public screen.  The given
  104. name should match exactly (case matters), or the system won't be able to
  105. find the requested screen.  If the screen does not exist, a new public
  106. screen will open, cloning Workbench resolution and palette.  Note that
  107. this behavior is not standard: Commodore commodities will abort if the
  108. required public screen does not exist.  Default for this option is
  109. "Workbench" that opens XModule on the Workbench screen.
  110.  
  111.        PORTNAME will change the name of XModule's ARexx port.  If a
  112. port with this name already exists, a number (eg: ".1") will be
  113. appended to the name, until a unique name is found.  The port name
  114. defaults to "XMODULE".  For more about the ARexx port, consult the
  115. ARexx Interface chapter.
  116.  
  117.    The DETACH switch allows you to detach XModule from the Shell it
  118. was started from.
  119.  
  120. User Interface
  121. ==============
  122.  
  123.    XModule's GUI follows Commodore's 2.0 style guidelines.  Under
  124. Kickstart 3.0 and above, XModule takes advantage of some new OS
  125. capabilities.
  126.  
  127.    Gadget layout is font sensitive, but using some fancy fonts could
  128. give you a strange user interface look.  If you use a very big font and
  129. a window becomes too big to fit the screen, topaz 8 will be used for
  130. rendering that window.
  131.  
  132.    In all windows, the following shortcut keys are active:
  133.  
  134. ESC
  135.      Close the active window.  Does not work with ToolBox Window.
  136.  
  137. HELP
  138.      Bring up AmigaGuide on-line help.  This feature requires
  139.      amigaguide.library.
  140.  
  141. TAB
  142.      Cycle forward through string and numeric gadgets within the active
  143.      window.  SHIFT-TAB cycles backwards.
  144.  
  145.    In addition, gadgets with underscored characters in labels, can be
  146. selected hitting the highligted key.
  147.  
  148. Panels
  149. ======
  150.  
  151.    Sorry, XModule's documentation is still incomplete.  The next release
  152. will hopefully be more accurate.
  153.  
  154.    But wait! Do not commit suicide for such a reason: XModule is very
  155. easy to use, and you will be able to operate it even without this
  156. chapter.
  157.  
  158. Format Conversion
  159. *****************
  160.  
  161.    XModule can load and save modules created by other music editors.
  162. The following is a list of supported module formats:
  163.  
  164. Noise Tracker
  165.      Noise/ProTracker 31 instruments module.  This is the default.
  166.  
  167. ProTracker 2.3
  168.      ProTracker 2.3 new 100 patterns module.  XModule will automatically
  169.      switch to Pro Tracker 100 whenever the converted module exceeds
  170.      the 64 patterns limit.
  171.  
  172.          Warning: You must load such a module with ProTracker 2.3 or
  173.      better in order to play/edit it.  Older players will either refuse
  174.      to load or turn the module into scratch dance.
  175.  
  176. Sound Tracker 15 instrument module
  177.      This is pretty useless as SoundTracker is becoming quite rare.  Do
  178.      not save SoundTracker modules unless you really need to, because
  179.      most players/editors will stop supporting this format very soon.
  180.      SoundTracker format has no way of identifying a module, therefore
  181.      XModule will ask you to confirm a SoundTracker module when the
  182.      file being loaded matches no other module format.
  183.  
  184. Oktalyzer V1.1
  185.      Oktalyzer is an old editor which can play up to 8 channels by
  186.      mixing instruments in real time.
  187.  
  188.    As a matter of fact, there are things that simply cannot be done
  189. because of the big differences between module formats.  Below is a list
  190. of the internal limitations of each module formats, when saving to a
  191. particular format, if the module exceeds one of this values, or makes
  192. use of features not implemented, some data will be stripped away to
  193. produce at least a partial conversion.
  194.  
  195.  
  196.      Program          Instr  MaxPatt PattLen SongLen InstrLen
  197.      --------------------------------------------------------
  198.      Oktalyzer         36      128     128     128     128K
  199.      Sound Tracker     15       64      64     128     128K
  200.      Noise Tracker     31       64      64     128     128K
  201.      Pro Tracker       31      100      64     128     128K
  202.      MED/OctaMED       63      256     256     256     ???
  203.      
  204.      Where:
  205.      #Instr   is the maximum number of instruments,
  206.      MaxPatt  is the maximum number of patterns,
  207.      PattLen  is the maximum number of lines per pattern,
  208.      SongLen  is the maximum number of positions in a song,
  209.      InstrLen is the maximum size of an instrument in bytes.
  210.  
  211.    Effects are the hardest thing to convert.  While Speed and Volume
  212. are almost the same between different music editors, some effects (such
  213. as Oktalyzer's H and L) cannot be converted because there are no
  214. equivalents in other music editors.  Therefore, you will have to modify
  215. the score manually if you intend to convert a module while keeping such
  216. effects.  In addiction, some effects behave in different ways even if
  217. they claim to do the same thing.
  218.  
  219.    Last but not least, some music editors support synthetic or hybrid
  220. instruments.  Fortunately, none of the module formats known by XModule
  221. implement such instruments, because I can hardly think of a way to
  222. implement a sample to synthetic conversion (any ideas?).  I used to
  223. like synthetic music, but it seems that all those great composers on
  224. the good old C64 have disappeared...  Why have you musicians become so
  225. lazy? 8-(
  226.  
  227. Optimization
  228. ************
  229.  
  230.    Module optimization is achieved by removing all unused data in such
  231. a way that the module will sound the same as before.  XModule can
  232. process a module to reduce its size as much as possible.  It is
  233. generally a good idea to optimize a module before distributing it, but
  234. never while you are composing it, because you could easly loose some
  235. data that you didn't mean to discard.  Do not expect to gain a lot
  236. optimizing a module: saving 20% of the total size is usually a very
  237. good result.
  238.  
  239. Unused patterns
  240.      Some formats (e.g.: Sound/Noise/ProTracker) store empty patterns
  241.      in a module if a pattern with a greater number is used.  For
  242.      instance, a song using patterns 1, 2 and 5 will contain patterns 3
  243.      and 4 as well.
  244.  
  245.          Warning: If a song contains a part that has not been finished
  246.      yet and has not already been inserted in the position table, you
  247.      will lose it.
  248.  
  249.          Warning: When a song is saved to Noise/ProTracker, patterns
  250.      beyond the last used patterns are discarded regardless of this
  251.      switch.  This is due to a limitation of Noise/ProTracker module
  252.      format.
  253.  
  254. Unused instruments
  255.      A composer may decide to use an instrument and then change his
  256.      mind, but forget to clear the instrument.  In this case the module
  257.      will contain an instrument that is never played.  These instruments
  258.      are simply stripped away.
  259.  
  260. Sample data after a loop
  261.      The part of an instrument following a loop is never played and is
  262.      therefore discarded.
  263.  
  264. Instruments zero tails
  265.      Long zero tails eat up memory and produce no sound.  This
  266.      optimization is performed only on loopless instruments, as a zero
  267.      sequence inside a loop does make difference.  XModule leaves at
  268.      least two zero bytes to avoid the nasty click produced by the
  269.      speaker dropping its volume to zero too quickly.
  270.  
  271. ARexx Interface
  272. ***************
  273.  
  274.    Sorry, XModule's documentation is still incomplete.  The next release
  275. will hopefully be more accurate.
  276.  
  277.    Anyway, XModule's ARexx port is not fully operative at the moment,
  278. so you're not missing a great deal.
  279.  
  280. Known Bugs
  281. **********
  282.  
  283.    Murphy's laws states that nothing can be perfect, even computer
  284. programs.  XModule is far from being perfect and I need your help to
  285. fix as many bugs as possible.  If you discover a bug not reported in
  286. the list below, please notify me.
  287.  
  288.    When you report a bug, state exactly what happens and indicate how
  289. to reproduce the conditions that generated the problem.  Reports like
  290. `XModule sometimes crashes converting my favorite module' does not help
  291. at all.  Include your name if you want to be credited in future XModule
  292. releases.
  293.  
  294.    If the program refuses to convert a module, mail it to me on a disk
  295. or upload it to a BBS that I can reach and I'll try to fix the problem
  296. as soon as possible.  Glass Globe BBS, whose address can be found in
  297. the Author chapter, will do.  If you want the disk back with the fixed
  298. version of XModule, send me a self-addressed envelope with enough
  299. Italian stamps or enough money for a reply.
  300.  
  301.    XModule has been tested on several machines running KickStart 2.0
  302. and 3.0.  It should work on any 68K family processor (tested on 68000,
  303. 68020 and 68040) and is Enforcer and Mungwall proof.
  304.  
  305. Future plans
  306. ************
  307.  
  308. OctaMED
  309.      This will probably be the next format I'll work on.  I think this
  310.      is the best music editor available on the Amiga, but I haven't yet
  311.      got enough infos on its file format to code a conversion routine.
  312.      If you have such information, please contact me (see Author).
  313.  
  314. TeX
  315.      Another format I would like to add is AmigaTeX.  If you know TeX,
  316.      you will surely be wondering what a typesetting program can be
  317.      used for in music.  Well, AmigaTeX is at the moment is the best
  318.      implementation available on any computer of the TeX typesetting
  319.      program, and its distribution includes MusicTeX, a powerful
  320.      music language which can output notes in a great standard staff
  321.      notation.  I know no other program on the Amiga that can print
  322.      notes of such fine quality (if you do, let me know!), so I think
  323.      that many musicians would appreciate such an option.
  324.  
  325. Other module formats
  326.      If you have documentation regarding a format you would like to see
  327.      in a next release, please send it to me together with a couple of
  328.      modules and, if possible and legal, the program that created them.
  329.      I'll try to implement the new format only if it is somewhat easy:
  330.      it is very hard to convert, say, Future Composer to SoundTracker.
  331.      Do not send a module without a text file describing its structure,
  332.      as I'm not willing to spend my nights hex-dumping modules :).
  333.  
  334. How to contact the author
  335. *************************
  336.  
  337.    If you want to make me aware of your suggestions, bug reports, ideas
  338. or you want to send me a gift, a good module or some money :-), reach
  339. me in any of the following ways:
  340.  
  341. Mail
  342.           Bernardo Innocenti
  343.           Via Ventiquattro Maggio, 14
  344.           50129 - Firenze
  345.           ITALY
  346.  
  347. FAX
  348.           +39-55-8877615
  349.           Attn:  Bernardo Innocenti
  350.           Subj:  Amiga/XModule
  351.  
  352. E-Mail
  353.           AmigaNet: Bernardo Innocenti 39:102/201.4
  354.           FidoNet:  Bernardo Innocenti 2:332/118.4
  355.           InterNet: Bernardo.Innocenti@p4.f118.n332.z2.fidonet.org
  356.           (Glass Globe BBS +39-577-959054)
  357.  
  358.    I will try to reply to all my E-Mail, but I'm too lazy to reply
  359. old-style mail.  Your suggestions will be taken into account unless
  360. they are `I want XModule to do ice tea'-style.
  361.  
  362. Programmer notes
  363. ****************
  364.  
  365.    XModule has been written in C and compiled with SAS C version 6.51,
  366. Other compilers may require some changes to the source.
  367.  
  368.    The program is written respecting the Amiga multitasking system and
  369. following Commodore guidelines.  All allocated resources will be
  370. (hopefully) freed before program termination.  I wrote XModule with the
  371. goal in mind of keeping the executable fast and small.
  372.  
  373.    This manual has been typeset using MakeInfo, a GNU PD utility ported
  374. to the Amiga by Reinhard Spisser and Sebastiano Vigna.  I found that
  375. the time I saved writing one file for three was nearly compensated by
  376. the time I spent learning how to operate MakeInfo.  As I'm not that
  377. skilled in using TeX and MakeInfo, you will probably find this document
  378. a bit silly in its typesetting style.
  379.  
  380.    Besides, English is not my first language (as you might have
  381. guessed) and I bet this document is full of grammar mistakes.
  382.  
  383.    If you intend to translate, improve or somewhat edit this document,
  384. please work on the supplied TexInfo file and then process it with the
  385. utilities supplied in the MakeGuide distribution.  You can find
  386. MakeGuide in several PD libraries such as BBSs.
  387.  
  388.    Do not hesitate to send criticisms to my work, and, even better,
  389. advices on how to improve the program and the documentation.  See
  390. Author.
  391.  
  392. Credits
  393. *******
  394.  
  395.    * Fabio Barzagli, for beta testing version 1.x, for the money he
  396.      paid me for it and, last but not least, for letting me have (or
  397.      steal?) his awesome modules!
  398.  
  399.      Keep on making good music, Fabio!
  400.  
  401.    * Alessandro Lombardi, for 2.x beta testing.
  402.  
  403.      Stop deleting files!
  404.  
  405.    * Massimo Brogioni, for being my fido boss and for spreading bogus
  406.      XModule releases all around the world.
  407.  
  408.      Hey boss, have you got a spare 5Gig streamer?
  409.  
  410.    * Erno Tuomainen for his wonderful Finnish BBS, for his kindness and
  411.      for all the support he gave me.
  412.  
  413.      Are there any more top-rating modules to leech?
  414.  
  415.    * Gerardo Iula, for letting me have the source of Tracker (by paying
  416.      :-( ).
  417.  
  418.      I assumed the money I paid covered the rights of modifying the
  419.      original source and distributing modified versions of your
  420.      program.  Hope you won't worry about it, Gerardo.
  421.  
  422.    * Sebastiano Vigna & his buddy Reinhard Spisser, for porting GNU
  423.      MakeInfo to the Amiga and for Reinhard's E-Mail technical support.
  424.  
  425.      Please, continue developing this useful (and hard to learn) tool.
  426.      By the way, MakeInfo crashed my Amiga really bad a couple of times!
  427.      Are my docs that boring?
  428.  
  429.    * The Amiga, for being the best computer in the world. :^)
  430.  
  431.      Commodore: Why don't you sell the Amiga project to someone serious
  432.      such as GVP or NewTek?
  433.  
  434.